package com.zwh.se.io;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

/**
 * @author zwh
 * 演示文件的复制
 */
public class FileCopyDemo {
    public static void main(String[] args) throws Exception {
        //1):根据文件的路径，创建对应的数据源以及目标file对象
        File sourse = new File("file/copy_before.txt");
        File target = new File("file/copy_after.txt");
        //2):创建IO流对象,通过io操作：1、读取源文件中的数据 2、边读边写
        //考虑到实际中的使用，一般都采用字符流来操作
        FileReader in = null;
        FileWriter out = null;

        in = new FileReader(sourse);
        out = new FileWriter(target);
        //3):具体的IO操作
        char[] buff = new char[1024];
        int len;
        // in.read(buff) 读取缓冲数量的字符，实际能读到多少个就返回多少个，-1代表已经到底了，读不到了
        while ((len = in.read(buff)) != -1) {
            String s = new String(buff, 0, len);
            //把内容写入到目标文件中,边读边写
            out.write(s);
            out.flush();
        }
        //4):关闭资源(勿忘)
        out.close();
        in.close();
    }
}